/**
 * \* Created with IntelliJ IDEA.
 * \* User: 冯若航
 * \* Date: 2021/6/18
 * \* Time: 21:14
 * \* To change this template use File | Settings | File Templates.
 * \* Description:
 * \
 */
public class private方法 {
    public static void main(String[] args) {
        Person1 ming = new Person1();
        ming.setBirth(2008);
        System.out.println(ming.getAge());
    }
}

/**
 * 观察上述代码，calcAge()是一个private方法，外部代码无法调用，但是，内部方法getAge()可以调用它。
 *
 * 此外，我们还注意到，这个Person类只定义了birth字段，没有定义age字段，获取age时，通过方法getAge()返回的是一个实时计算的值，
 * 并非存储在某个字段的值。这说明方法可以封装一个类的对外接口，调用方不需要知道也不关心Person实例在内部到底有没有age字段。
 */
class Person1 {
    private String name;
    private int birth;

    public void setBirth(int birth) {
        this.birth = birth;
    }

    public int getAge() {
        return calcAge(2019);
        // 调用private方法
    }

    /**
     * private方法:
     */
    private int calcAge(int currentYear) {
        return currentYear - this.birth;
    }
}